import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Example {

    // 方法：读取文件的第一行内容
    public String readFirstLine(String filePath) {
        String firstLine = null;
        try {
            BufferedReader reader = new BufferedReader(new FileReader(filePath));
            firstLine = reader.readLine();
            // 故意不关闭资源（问题点：资源泄漏）
        } catch (IOException e) {
            System.err.println("Error reading file: " + e.getMessage());
        }
        return firstLine;
    }
    // 方法：可能返回 null（问题点：潜在空指针风险）
    public String getMessage() {
        return null; // 故意返回 null
    }
    
    public String problematicCode() {

        // 1. 没有实际用途的局部变量（SonarQube 会检测到未使用的变量）
        int unusedVariable = 42;

        // 2. 非标准化的异常处理（SonarQube 会警告空的 catch 块）
        try {
            int result = 10 / 0;
        } catch (Exception e) {
            // 什么都不做
        }

        // 3. 使用硬编码的字符串（SonarQube 会建议避免硬编码）
        String hardcodedPassword = "12345";
        
        // 4. 重复的字符串（SonarQube 会建议提取成常量）
        System.out.println("dumplicate!!");
        System.out.println("dumplicate!!");
        
        // 5. 有问题的循环（SonarQube 会检测死循环）
        while (true) {
            break;  // 虽然有 break，但写成死循环容易引起警告
        }

        return null;
    }

    public static void main(String[] args) {

        Example example = new Example();
        
        // 使用 readFirstLine 方法读取文件
        String filePath = "example.txt"; // 确保文件存在，内容可编辑
        String content = example.readFirstLine(filePath);
        System.out.println("First line: " + content);

        // 使用 getMessage 方法触发潜在空指针问题
        String message = example.getMessage();
        System.out.println("Message length: " + message.length()); // 这里可能会触发 NullPointerException
    }
}
